
    //需要图色就解开截图权限
    // let request = image.requestScreenCapture(10000, 0);
    // if (!request) {
    //     request = image.requestScreenCapture(10000, 0);
    // }
    // logd("申请截图结果... " + request)
    // if (!request) {
    //     loge("申请截图权限失败,检查是否开启后台弹出,悬浮框等权限")
    //     exit()
    // }
    // sleep(1000);
    // let 找图文件夹 = file.exists("/sdcard/找图/");
    // sleep(100);
    // if (找图文件夹 == false) {
    //     var t = file.mkdirs("/sdcard/找图/");
    //     toast(t);
    //     sleep(1000)
    // }
    // 检查图片("yiguanzhu")
    var version = "1.0.001"; //当前版本号
    toast("当前版本 -> " + version);
    device.keepScreenOn();//保持屏幕唤醒
    ui.showLogWindow();//显示日志
    const x = device.getScreenWidth();
    const y = device.getScreenHeight(); //屏幕的横坐标 x //屏幕的纵坐标 y
    var m = {
        "x": x / 1.1, "y": y / 1.7,
    }
    setCtrlViewSizeEx(m);//设置启停位置
    showCtrlWindow();//显示启停
    setTimeout(function () {
        ui.closeLogWindow();
    }, 5000); //5秒后关闭日志
    var toastExtra = {
        "x": x / 1,
        "y": y / 1.35,
        "width": x / 7,
        "height": y / 7,
        "duration": 120000,
        "textColor": "#1dfc04",
        "draggable": false
    }//toast窗口位置
    var 编号 = readConfigString("编号");//读取字符串数据//readConfigLong readConfigLong是读取数字?
    var 账号 = readConfigString("账号");//读取字符串数据
    var 密码 = readConfigString("密码");//读取字符串数据
    var 账号文件 = file.exists("/sdcard/0.txt/");
    toast(账号文件);
    sleep(1000)
    if (账号文件 == false) {
        sleep(100)
        file.appendLine(编号, "/sdcard/0.txt");
        sleep(1000)
    }
    var 本机编号 = file.readLine("/sdcard/0.txt", 1);

    if (本机编号 == "") {
        logd("没有")
        file.deleteAllFile("/sdcard/0.txt");
        sleep(1000)
    }
    if (本机编号 == null) {
        logd("没有")
        file.deleteAllFile("/sdcard/0.txt");
        sleep(1000)
    }
    var 单选一 = readConfigString("one");
    var 单选二 = readConfigString("two");
    var 单选三 = readConfigString("three");
    var 单选四 = readConfigString("four");
    var 服务器账号状态链接 = 'http://8.140.243.126:8088/xystatus'
    var 账号正常 = JSON.stringify({"num": 本机编号, "xystatus": "在线",})
    // thread.execAsync(function () {
    //     while (true) {
    //         try {
    //             logd("检测")
    //             sleep(1000)
    //             let 正常状态 = http.postJSON(服务器账号状态链接, 账号正常, 10 * 1000, {"User-Agent": "test"});
    //             logd(账号正常 + "登录")
    //             if (正常状态 === "OK") {
    //                 logd("成功")
    //                 sleep(1000)
    //             } else {
    //                 logd("失败")
    //                 sleep(10000)
    //                 let 正常状态 = http.postJSON(服务器账号状态链接, 账号正常, 10 * 1000, {"User-Agent": "test"});
    //                 logd(账号正常 + "登录")
    //                 if (正常状态 === "OK") {
    //                     logd("成功")
    //                     sleep(1000)
    //                 } else {
    //                     logd("失败")
    //                     sleep(1000)
    //                 }
    //             }
    //             sleep(1140 * 1000)
    //         } catch (e) {
    //             logw("出错")
    //             sleep(1000)
    //         }
    //     }
    //
    // });//上传服务器编号
    logw("第二子线程")
    sleep(100)
    thread.execAsync(function () {

        for (; ;) {
            try {
                let 定时1 = "13:22", 定时2 = "13:25", 定时3 = "13:28", 定时4 = "星期2的3:32", 定时5 = "星期4的3:19", 定时6 = "星期6的3:19"
                let 时 = new Date().getHours(), 分 = new Date().getMinutes(), 星期 = new Date().getDay()
                let 时间 = (时) + ":" + (分);
                let 关机时间 = "星期" + (星期) + "的" + (时) + ":" + (分);
                if (时间 == 定时1) {
                    sleep(60000)
                    更新()
                }
                if (时间 == 定时2) {
                    sleep(60000)
                    更新()
                }
                if (时间 == 定时3) {
                    sleep(60000)
                    更新()
                }
                removeNodeFlag(0);
                sleep(100)
                if (查找节点点击("当前应用暂不支持", text("当前应用暂不支持"), 111, 100)) {
                    logd("当前应用暂不支持")
                    back()
                    sleep(3000)
                }
                if (查找节点点击("拒绝", text("拒绝"), 1, 100)) {
                    logd("拒绝")
                    sleep(100)
                }
                if (查找节点点击("点击重试", text("点击重试"), 1, 100)) {
                    logd("点击重试")
                    sleep(100)
                }
                if (查找节点点击("下次再说", text("下次再说"), 1, 100)) {
                    logd("下次再说")
                    sleep(100)
                }
                if (查找节点点击("打开", text("打开"), 1, 100)) {
                    logd("打开")
                    sleep(3000)
                }
                if (查找节点点击("关闭应用", text("关闭应用"), 1, 100)) {
                    logd("关闭应用")
                    sleep(3000)
                }
                if (查找节点点击("使用帮助", text("使用帮助"), 1000, 100)) {
                    back()
                    sleep(2000)
                }
                if (查找节点点击("选择文件", text("选择文件"), 1000, 100)) {
                    logd("选择文件")
                    back()
                    sleep(2000)
                }
                if (查找节点点击("文件中转站", text("文件中转站"), 1000, 100)) {
                    logd("文件中转站")
                    back()
                    sleep(2000)
                }
                if (查找节点点击("上传本机APP", text("上传本机APP"), 1000, 100)) {
                    logd("上传本机APP")
                    back()
                    sleep(1000)
                }
                if (查找节点点击("继续", text("继 续"), 1, 100)) {
                    logd("继续")
                    sleep(2000)
                }
                if (查找节点点击("确定", text("确定"), 1, 100)) {
                    logd("确定")
                    sleep(2000)
                }
                if (查找节点点击("允许", text("允许"), 1, 100)) {
                    logd("允许")
                    sleep(2000)
                }

                if (查找节点点击("打开方式", text("打开方式"), 1000, 100)) {
                    logd("打开方式")
                    sleep(100)
                    if (查找节点点击("淘宝", text("淘宝"), 1, 1000)) {
                        logd("淘宝")
                        sleep(1000)
                        if (查找节点点击("始终", text("始终"), 1, 1000)) {
                            logd("始终")
                            sleep(1000)
                        }
                    }
                    if (查找节点点击("支付宝", text("支付宝"), 1, 1000)) {
                        logd("支付宝")
                        sleep(1000)
                        if (查找节点点击("始终", text("始终"), 1, 1000)) {
                            logd("始终")
                            sleep(1000)
                        }
                    }
                }
                if (查找节点点击("退出访问", text("退出访问"), 1, 500)) {
                    logd("退出访问")
                    sleep(100)
                }

                let TB滑块 = getOneNodeInfo(text("验证码拦截"), 3 * 1000)
                if (TB滑块) {
                    let 带盾的滑块 = getOneNodeInfo(text("为了您的账号安全，需要进行安全校验"), 1500)
                    if (带盾的滑块) {
                        moveFun(x * 0.138, y * 0.714, x * 0.958, y * 0.711, 2240, 4500, 800)
                        sleep(5500);
                        let 没有划过滑块 = getOneNodeInfo(text("验证码拦截"), 1000)
                        if (没有划过滑块) {
                            clickPoint(x * 0.501, y * 0.71);
                            sleep(1000);
                            moveFun(x * 0.138, y * 0.714, x * 0.958, y * 0.711, 2240, 4500, 800)
                            sleep(5500);
                            let 没有划过滑块2 = getOneNodeInfo(text("验证码拦截"), 1000)
                            if (没有划过滑块2) {
                                clickPoint(x * 0.501, y * 0.71);
                                sleep(1000);
                                moveFun(x * 0.138, y * 0.714, x * 0.958, y * 0.711, 2240, 4500, 800)
                                sleep(5500);
                                let 没有划过滑块3 = getOneNodeInfo(text("验证码拦截"), 1000)
                                if (没有划过滑块3) {
                                    sleep(5000)
                                    back()
                                    sleep(1000);
                                }
                            }

                        }
                    } else {
                        moveFun(x * 0.143, y * 0.667, x * 0.958, y * 0.666, 2240, 4500, 800)
                        sleep(5500);
                        let 没有划过滑块 = getOneNodeInfo(text("验证码拦截"), 1000)
                        if (没有划过滑块) {
                            clickPoint(x * 0.480, y * 0.651);
                            sleep(1000);
                            moveFun(x * 0.143, y * 0.667, x * 0.958, y * 0.666, 2240, 4500, 800)
                            sleep(5500);
                            let 没有划过滑块2 = getOneNodeInfo(text("验证码拦截"), 1000)
                            if (没有划过滑块2) {
                                clickPoint(x * 0.480, y * 0.651);
                                sleep(1000);
                                moveFun(x * 0.143, y * 0.667, x * 0.958, y * 0.666, 2240, 4500, 800)
                                sleep(5500);
                                let 没有划过滑块3 = getOneNodeInfo(text("验证码拦截"), 1000)
                                if (没有划过滑块3) {
                                    sleep(20000)
                                    back()
                                    sleep(1000);
                                }
                            }

                        }
                    }

                }
            } catch (e) {
                logw("出错")
                sleep(1000)
            }
        }

    });//弹窗线程
    logw("检测时间")
    sleep(100)
    for (; ;) {
        try {
            let 本机当前时间年 = timeFormat("yyyy");
            logd(本机当前时间年)
            if (本机当前时间年 < 2024) {
                logd("时间小于2024年")
                sleep(1000)
                utils.openIntentAction("android.settings.DATE_SETTINGS")
                toast("进入时间")
                sleep(2000)
                let 自动日期开关 = getOneNodeInfo(text("自动设置日期和时间"), 3000)
                if (自动日期开关) {
                    (自动日期开关).click()
                    sleep(5000)
                }
            } else {
                break
            }
        } catch (e) {
            logw("出错")
            sleep(1000)
        }

    }//检测时间
    logw("是否安装米圈")
    sleep(100)
    let 是否安装米圈 = utils.isAppExist("cn.auto.mzz.taskzb");
    if (是否安装米圈) {
        utils.openAppByName("米圈zb");
        logd("启动米圈");
        sleep(1000);

        for (; ;) {
            for (let i = 0; i < 120; i++) {

                if (查找节点点击("没有机组号", text("机组号：无"), 1000, 500)) {
                    logd("没有机组号")
                    sleep(100)
                    if (查找节点点击("暂停任务", text("暂停任务"), 1, 500)) {
                        logd("暂停任务")
                        sleep(5001)
                    }
                    if (查找节点点击("点击ID", textMatch("ID : M"), 1, 2500)) {
                        logd("取消ID")
                        sleep(1010)
                        if (查找节点点击("确定", text("确定").id("cn.auto.mzz.taskzb:id/md_buttonDefaultPositive"), 1, 2500)) {
                            logd("确定")
                            sleep(1001)
                            if (查找节点点击("绑定机组号", text("绑定机组号"), 1, 500)) {
                                logd("绑定机组号")
                                sleep(1001)
                                if (查找节点点击("使用已有ID", text("使用已有ID"), 1, 500)) {
                                    logd("使用已有ID")
                                    sleep(2001)
                                    if (查找节点点击并输入("输入ID", id("android:id/input"), 账号, 1011)) {
                                        logd("输入ID")
                                        sleep(1000)
                                        if (查找节点点击("确定", text("确定").enabled(true), 1, 1500)) {
                                            logd("确定")
                                            sleep(1001)
                                        }
                                    }
                                }
                            }
                        }

                    }
                }
                if (查找节点点击("开始任务", text("开始任务"), 1, 500)) {
                    logd("开始任务")
                    sleep(10000)
                }
                if (查找节点点击("存在大众", index(2).depth(2).drawingOrder(2), 1000, 500)) {
                    sleep(100)
                } else {
                    utils.openApp("cn.auto.mzz.taskzb");
                    logd("启动大众");
                    sleep(1000);
                    if (查找节点点击("开始任务", text("开始任务"), 1, 5000)) {
                        logd("开始任务")
                        sleep(10000)
                    }
                    if (查找节点点击("重新开始", text("重新开始"), 1, 15000)) {
                        logd("重新开始")
                        sleep(10000)
                        if (查找节点点击("存在大众", index(2).depth(2).drawingOrder(2), 1000, 500)) {
                            sleep(100)
                        } else {
                            back()
                            sleep(200)
                            back()
                            sleep(200)
                            back()
                            sleep(2000)
                        }
                    }
                }
                toast("程序运行" + i + "分", toastExtra)
                sleep(59000)
            }
            utils.openApp("cn.auto.mzz.taskzb");
            logd("启动大众");
            sleep(1000);
            if (查找节点点击("米圈界面", pkg("cn.auto.mzz.taskzb"), 1000, 3500)) {
                back()
                sleep(200)
                back()
                sleep(200)
                back()
                sleep(2000)
            } else {
                utils.openApp("cn.auto.mzz.taskzb");
                logd("启动大众");
                sleep(1000);
                if (查找节点点击("米圈界面", pkg("cn.auto.mzz.taskzb"), 1000, 2500)) {
                    back()
                    sleep(200)
                    back()
                    sleep(2000)
                }
            }
            停止应用("com.tencent.mm")
            sleep(1000);
            utils.openApp("cn.auto.mzz.taskzb");
            logd("启动大众");
            sleep(1000);
            if (查找节点点击("开始任务", text("开始任务"), 1, 15000)) {
                logd("开始任务")
                sleep(10000)
            }


        }
    }
    logw("是否安装新阅读")
    sleep(100)
    let 是否安装新阅读 = utils.isAppExist("com.awzn5p62e.cojwi7xqc");
    if (是否安装新阅读) {
        for (; ;) {
            for (let i = 0; i < 120; i++) {

                if (查找节点点击("新阅读是否运行", pkg("com.awzn5p62e.cojwi7xqc"), 1000, 500)) {
                    sleep(1000)
                    toast("程序运行" + i + "分", toastExtra)
                    sleep(59000)
                } else {
                    logw("启动新阅读")
                    sleep(100)
                    utils.openAppByName("Nyx");
                    logd("启动新阅读");
                    sleep(3000);
                    if (查找节点点击("启动程序", text("启动程序"), 1, 5000)) {
                        logd("启动程序")
                        sleep(1000)
                    }
                }

            }
        }
        logw("完成120分钟")
        sleep(1000)
    } else {
        logw("没有安装新阅读")
        sleep(1000)
    }
    logw("单选")
    sleep(100)
    if (单选一 == "true") {
        logd("选择的是111")
        sleep(1000)
        任务1()
    } else {
        if (单选二 == "true") {
            logd("选择的是222")
            sleep(1000)
            任务2()
        } else {
            if (单选三 == "true") {
                logd("选择的是333")
                sleep(1000)
                任务3()
            } else {
                if (单选四 == "true") {
                    logd("选择的是444")
                    sleep(1000)
                    任务4()
                } else {
                    logd("没有选择")
                    sleep(100);
                    ui.saveConfig("one", true);
                    sleep(100)
                    ui.saveConfig("two", false);
                    sleep(100)
                    ui.saveConfig("three", false);
                    sleep(100)
                    ui.saveConfig("four", false);
                    sleep(100)
                    ui.openECSystemSetting();
                    sleep(500)
                    let 脚本系统设置界面 = getOneNodeInfo(text("系统设置").id("com.gibb.easyclick:id/tv_title"), 15000)
                    if (脚本系统设置界面) {
                        back()
                        sleep(500)
                        back()
                        sleep(500)
                        back()
                        sleep(500)
                    }
                    let id2 = startJob("task2", "4", true);
                    toast("job id " + id2);
                    sleep(1000)
                    exit()
                }
            }
        }
    }

    function 闹腾3() {

    }

    logd("执行任务一")
    sleep(100)

    function 任务1() {
        logd("执行任务一")
        sleep(100)
        for (; ;) {
            try {

                logw("执行任务一")
                sleep(1000)
            } catch (e) {
                logw("出错")
                sleep(1000)
            }
        }
    }

    function 任务2() {
        logd("执行任务二")
        sleep(100)
        for (; ;) {
            try {

            } catch (e) {
                logw("出错")
                sleep(1000)
            }
        }
    }

    function 任务3() {
        logd("执行任务三")
        sleep(100)
        for (; ;) {
            try {
                for (; ;) {
                    try {
                        for (; ;) {

                            toast("开始执行星球");
                            sleep(100);
                            home()
                            sleep(1000)
                            home()
                            sleep(1000)
                            recentApps();
                            sleep(1000)
                            if (查找节点点击("清理内存", text("全部关闭"), 3, 5000)) {
                                logd("清理内存")
                                sleep(2000)
                            }
                            back()
                            sleep(500)

                            for (; ;) {

                                let 是否存在夺宝星球 = getOneNodeInfo(pkg("com.yddx.planet"), 3 * 100)
                                if (是否存在夺宝星球) {
                                    for (let i = 0; i < 10; i++) {
                                        toast("等待任务中.." + i, toastExtra);
                                        sleep(100);
                                        removeNodeFlag(0);
                                        sleep(100)
                                        if (查找节点点击("点击任务标签", desc("任务\n" +
                                            "第 3 个标签，共 4 个").selected(false), 1, 100)) {
                                            logd("点击任务标签")
                                            sleep(1000)
                                        }
                                        if (查找节点点击("关闭恭喜获得", index(7).depth(7).drawingOrder(0).pkg("com.yddx.planet"), 3, 2110)) {
                                            logd("关闭恭喜获得")
                                            sleep(1000)
                                        }
                                        if (查找节点点击("去浏览", descMatch("元\n" +
                                            "去浏览"), 3, 10)) {
                                            logd("去浏览")
                                            sleep(1000)
                                            for (let i = 0; i < 40; i++) {
                                                toast(i, toastExtra)
                                                sleep(1000)
                                                removeNodeFlag(0);
                                                sleep(100)
                                                if (查找节点点击("死号", text("账号存在风险，请按照步骤解除风险"), 1000, 50)) {
                                                    logd("死号")
                                                    sleep(100)
                                                    死号()
                                                }

                                                if (查找节点点击("死号2", text("请前往淘宝APP处理, 解除风险"), 1000, 50)) {
                                                    logd("死号2")
                                                    sleep(100)
                                                    死号()
                                                }
                                                if (查找节点点击("死号3需要验证", text("获取验证码"), 1000, 50)) {
                                                    logd("需要验证")
                                                    sleep(100)
                                                    死号()
                                                }
                                                if (查找节点点击("死号4支付宝", text("下一步").id("com.alipay.mobile.antui:id/button_text"), 1000, 50)) {
                                                    logd("死号4支付宝")
                                                    sleep(100)
                                                    死号()
                                                }
                                                if (查找节点点击("死号5账号认证", text("账号认证"), 1000, 50)) {
                                                    logd("死号5账号认证")
                                                    sleep(100)
                                                    死号()
                                                }
                                            }
                                            home()
                                            sleep(1000)
                                            home()
                                            sleep(1000)
                                            recentApps();
                                            sleep(1000)
                                            if (查找节点点击("清理内存", text("全部关闭"), 3, 5000)) {
                                                logd("清理内存")
                                                sleep(2000)
                                            }
                                            back()
                                            sleep(500)
                                            break

                                        }
                                        if (查找节点点击("立即投保", descMatch("元\n" +
                                            "立即投保"), 3, 10)) {
                                            logd("立即投保")
                                            sleep(1000)
                                            for (let i = 0; i < 50; i++) {
                                                toast(i, toastExtra)
                                                sleep(1000)
                                                removeNodeFlag(0);
                                                sleep(100)
                                                if (查找节点点击("死号", text("账号存在风险，请按照步骤解除风险"), 1000, 50)) {
                                                    logd("死号")
                                                    sleep(100)
                                                    死号()
                                                }

                                                if (查找节点点击("死号2", text("请前往淘宝APP处理, 解除风险"), 1000, 50)) {
                                                    logd("死号2")
                                                    sleep(100)
                                                    死号()
                                                }
                                                if (查找节点点击("死号3需要验证", text("获取验证码"), 1000, 50)) {
                                                    logd("需要验证")
                                                    sleep(100)
                                                    死号()
                                                }
                                                if (查找节点点击("死号4支付宝", text("下一步").id("com.alipay.mobile.antui:id/button_text"), 1000, 50)) {
                                                    logd("死号4支付宝")
                                                    sleep(100)
                                                    死号()
                                                }
                                                if (查找节点点击("死号5账号认证", text("账号认证"), 1000, 50)) {
                                                    logd("死号5账号认证")
                                                    sleep(100)
                                                    死号()
                                                }
                                            }
                                            home()
                                            sleep(1000)
                                            home()
                                            sleep(1000)
                                            recentApps();
                                            sleep(1000)
                                            if (查找节点点击("清理内存", text("全部关闭"), 3, 5000)) {
                                                logd("清理内存")
                                                sleep(2000)
                                            }
                                            back()
                                            sleep(500)
                                            break

                                        }
                                        if (查找节点点击("立即领取", descMatch("元\n" +
                                            "立即领取"), 3, 10)) {
                                            logd("立即领取")
                                            sleep(1000)
                                            for (let i = 0; i < 50; i++) {
                                                toast(i, toastExtra)
                                                sleep(1000)
                                                removeNodeFlag(0);
                                                sleep(100)
                                                if (查找节点点击("死号", text("账号存在风险，请按照步骤解除风险"), 1000, 50)) {
                                                    logd("死号")
                                                    sleep(100)
                                                    死号()
                                                }

                                                if (查找节点点击("死号2", text("请前往淘宝APP处理, 解除风险"), 1000, 50)) {
                                                    logd("死号2")
                                                    sleep(100)
                                                    死号()
                                                }
                                                if (查找节点点击("死号3需要验证", text("获取验证码"), 1000, 50)) {
                                                    logd("需要验证")
                                                    sleep(100)
                                                    死号()
                                                }
                                                if (查找节点点击("死号4支付宝", text("下一步").id("com.alipay.mobile.antui:id/button_text"), 1000, 50)) {
                                                    logd("死号4支付宝")
                                                    sleep(100)
                                                    死号()
                                                }
                                                if (查找节点点击("死号5账号认证", text("账号认证"), 1000, 50)) {
                                                    logd("死号5账号认证")
                                                    sleep(100)
                                                    死号()
                                                }
                                            }
                                            home()
                                            sleep(1000)
                                            home()
                                            sleep(1000)
                                            recentApps();
                                            sleep(1000)
                                            if (查找节点点击("清理内存", text("全部关闭"), 3, 5000)) {
                                                logd("清理内存")
                                                sleep(2000)
                                            }
                                            back()
                                            sleep(500)
                                            break

                                        }
                                        if (查找节点点击("去关注", descMatch("元\n" +
                                            "去关注"), 3, 10)) {
                                            logd("去关注")
                                            sleep(20000)
                                            for (let i = 0; i < 50; i++) {
                                                toast(i, toastExtra)
                                                sleep(1000)
                                                removeNodeFlag(0);
                                                sleep(100)
                                                if (查找节点点击("现在订阅店铺", text("现在订阅店铺"), 1000, 500)) {
                                                    logd("现在订阅店铺")
                                                    sleep(10000)
                                                    if (查找节点点击("有导航栏", desc("主屏幕").id("com.android.systemui:id/home"), 1000, 500)) {
                                                        clickPoint(x * 0.49722222222222223, y * 0.8788288288288288)
                                                        sleep(15000)
                                                        break
                                                    } else {
                                                        clickPoint(x * 0.489, y * 0.930)
                                                        sleep(15000)
                                                        break
                                                    }
                                                    clickPoint(x * 0.49722222222222223, y * 0.8788288288288288)
                                                    sleep(15000)
                                                    break
                                                }
                                                if (查找节点点击("入会好礼享不停", text("入会好礼享不停"), 1, 50)) {
                                                    logd("入会好礼享不停")
                                                    sleep(15000)
                                                    break
                                                }
                                                if (查找节点点击("点击订阅店铺", text("点击订阅店铺"), 1, 50)) {
                                                    logd("点击订阅店铺")
                                                    sleep(15000)
                                                    break
                                                }
                                                if (查找节点点击("关注直播", desc("关注"), 1, 50)) {
                                                    logd("关注直播")
                                                    sleep(15000)
                                                    break
                                                }
                                                if (查找节点点击("死号", text("账号存在风险，请按照步骤解除风险"), 1000, 50)) {
                                                    logd("死号")
                                                    sleep(100)
                                                    死号()
                                                }

                                                if (查找节点点击("死号2", text("请前往淘宝APP处理, 解除风险"), 1000, 50)) {
                                                    logd("死号2")
                                                    sleep(100)
                                                    死号()
                                                }
                                                if (查找节点点击("死号3需要验证", text("获取验证码"), 1000, 50)) {
                                                    logd("需要验证")
                                                    sleep(100)
                                                    死号()
                                                }
                                                if (查找节点点击("死号4支付宝", text("下一步").id("com.alipay.mobile.antui:id/button_text"), 1000, 50)) {
                                                    logd("死号4支付宝")
                                                    sleep(100)
                                                    死号()
                                                }
                                                if (查找节点点击("死号5账号认证", text("账号认证"), 1000, 50)) {
                                                    logd("死号5账号认证")
                                                    sleep(100)
                                                    死号()
                                                }
                                            }
                                            home()
                                            sleep(1000)
                                            home()
                                            sleep(1000)
                                            recentApps();
                                            sleep(1000)
                                            if (查找节点点击("清理内存", text("全部关闭"), 3, 5000)) {
                                                logd("清理内存")
                                                sleep(2000)
                                            }
                                            back()
                                            sleep(500)
                                            break
                                        }
                                        if (查找节点点击("立即关注", descMatch("元\n" +
                                            "立即关注"), 3, 10)) {
                                            logd("立即关注")
                                            sleep(20000)
                                            for (let i = 0; i < 50; i++) {
                                                toast(i, toastExtra)
                                                sleep(1000)
                                                removeNodeFlag(0);
                                                sleep(100)
                                                if (查找节点点击("关注达人", text("O1CN01r0CnI51t4R6OpIBNj_!!6000000005848-2-tps-750-332"), 3, 50)) {
                                                    logd("关注达人")
                                                    sleep(15000)
                                                    break
                                                }
                                                if (查找节点点击("入会好礼享不停", text("入会好礼享不停"), 1, 50)) {
                                                    logd("入会好礼享不停")
                                                    sleep(15000)
                                                    break
                                                }
                                                if (查找节点点击("点击订阅店铺", text("点击订阅店铺"), 1, 50)) {
                                                    logd("点击订阅店铺")
                                                    sleep(15000)
                                                    break
                                                }
                                                if (查找节点点击("死号", text("账号存在风险，请按照步骤解除风险"), 1000, 50)) {
                                                    logd("死号")
                                                    sleep(100)
                                                    死号()
                                                }

                                                if (查找节点点击("死号2", text("请前往淘宝APP处理, 解除风险"), 1000, 50)) {
                                                    logd("死号2")
                                                    sleep(100)
                                                    死号()
                                                }
                                                if (查找节点点击("死号3需要验证", text("获取验证码"), 1000, 50)) {
                                                    logd("需要验证")
                                                    sleep(100)
                                                    死号()
                                                }
                                                if (查找节点点击("死号4支付宝", text("下一步").id("com.alipay.mobile.antui:id/button_text"), 1000, 50)) {
                                                    logd("死号4支付宝")
                                                    sleep(100)
                                                    死号()
                                                }
                                                if (查找节点点击("死号5账号认证", text("账号认证"), 1000, 50)) {
                                                    logd("死号5账号认证")
                                                    sleep(100)
                                                    死号()
                                                }
                                            }
                                            home()
                                            sleep(1000)
                                            home()
                                            sleep(1000)
                                            recentApps();
                                            sleep(1000)
                                            if (查找节点点击("清理内存", text("全部关闭"), 3, 5000)) {
                                                logd("清理内存")
                                                sleep(2000)
                                            }
                                            back()
                                            sleep(500)
                                            break
                                        }
                                        if (查找节点点击("关注领取", descMatch("元\n" +
                                            "关注领取"), 3, 10)) {
                                            logd("关注领取")
                                            sleep(1000)
                                            for (let i = 0; i < 50; i++) {
                                                toast(i, toastExtra)
                                                sleep(1000)
                                                removeNodeFlag(0);
                                                sleep(100)
                                                if (查找节点点击("云码", desc("云码"), 1000, 10)) {
                                                    logd("云码")
                                                    sleep(1000)
                                                    if (查找节点点击("关闭", index(2).depth(9).drawingOrder(0).clz("android.widget.Button"), 3, 3000)) {
                                                        logd("关闭")
                                                        sleep(8000)
                                                        break
                                                    }

                                                }
                                                if (查找节点点击("死号", text("账号存在风险，请按照步骤解除风险"), 1000, 50)) {
                                                    logd("死号")
                                                    sleep(100)
                                                    死号()
                                                }

                                                if (查找节点点击("死号2", text("请前往淘宝APP处理, 解除风险"), 1000, 50)) {
                                                    logd("死号2")
                                                    sleep(100)
                                                    死号()
                                                }
                                                if (查找节点点击("死号3需要验证", text("获取验证码"), 1000, 50)) {
                                                    logd("需要验证")
                                                    sleep(100)
                                                    死号()
                                                }
                                                if (查找节点点击("死号4支付宝", text("下一步").id("com.alipay.mobile.antui:id/button_text"), 1000, 50)) {
                                                    logd("死号4支付宝")
                                                    sleep(100)
                                                    死号()
                                                }
                                                if (查找节点点击("死号5账号认证", text("账号认证"), 1000, 50)) {
                                                    logd("死号5账号认证")
                                                    sleep(100)
                                                    死号()
                                                }
                                            }

                                        }
                                        if (查找节点点击("关注入会", descMatch("元\n" +
                                            "关注入会"), 3, 10)) {
                                            logd("关注领取")
                                            sleep(1000)
                                            for (let i = 0; i < 50; i++) {
                                                toast(i, toastExtra)
                                                sleep(7000)
                                                removeNodeFlag(0);
                                                sleep(100)
                                                if (查找节点点击("云码", desc("云码"), 1000, 10)) {
                                                    logd("云码")
                                                    sleep(1000)
                                                    if (查找节点点击("关闭", index(2).depth(9).drawingOrder(0).clz("android.widget.Button"), 3, 3000)) {
                                                        logd("关闭")
                                                        sleep(8000)
                                                        break
                                                    }
                                                }
                                                if (查找节点点击("死号", text("账号存在风险，请按照步骤解除风险"), 1000, 50)) {
                                                    logd("死号")
                                                    sleep(100)
                                                    死号()
                                                }

                                                if (查找节点点击("死号2", text("请前往淘宝APP处理, 解除风险"), 1000, 50)) {
                                                    logd("死号2")
                                                    sleep(100)
                                                    死号()
                                                }
                                                if (查找节点点击("死号3需要验证", text("获取验证码"), 1000, 50)) {
                                                    logd("需要验证")
                                                    sleep(100)
                                                    死号()
                                                }
                                                if (查找节点点击("死号4支付宝", text("下一步").id("com.alipay.mobile.antui:id/button_text"), 1000, 50)) {
                                                    logd("死号4支付宝")
                                                    sleep(100)
                                                    死号()
                                                }
                                                if (查找节点点击("死号5账号认证", text("账号认证"), 1000, 50)) {
                                                    logd("死号5账号认证")
                                                    sleep(100)
                                                    死号()
                                                }
                                            }

                                        }
                                    }
                                    sleep(1000);
                                    home();
                                    sleep(1000)
                                    home();
                                    sleep(1000);
                                    recentApps();
                                    sleep(1000);
                                    if (查找节点点击("清理内存", text("全部关闭"), 3, 5000)) {
                                        logd("清理内存")
                                        sleep(2000)
                                    }
                                    back()
                                    sleep(500)
                                    break
                                } else {
                                    utils.openAppByName("夺宝星球");
                                    logd("启动夺宝星球");
                                    sleep(3000);
                                }

                            }

                            sleep(500)
                        }
                    } catch (e) {
                        logw("出错")
                        sleep(1000)
                    }
                }
            } catch (e) {
                logw("出错")
                sleep(1000)
            }
        }
    }

    function 任务4() {
        logd("执行任务四")
        sleep(100)
        for (; ;) {
            try {

            } catch (e) {
                logw("出错")
                sleep(1000)
            }
        }
    }

    function 光速小鱼取关() {
        for (; ;) {
            try {
                logd("开始光速小鱼取关")
                sleep(1000)
                if (是否取关 == "1") {
                    sleep(1000)
                } else {
                    logd("没有选择取关")
                    sleep(60000);
                    main()
                }

                if (第一排做任务 == "true") {
                    logd("选择的是第一排...开始取关第二排")
                    sleep(1000)
                    打开应用信息界面("com.vphonegaga.titan")
                    sleep(3000)
                    if (查找节点点击("强制停止", text("强制停止"), 1, 3111)) {
                        logd("强制停止")
                        sleep(2000)
                        if (查找节点点击("强制停止", text("强制停止"), 1, 3110)) {
                            logd("强制停止")
                            back()
                            sleep(1000)
                            back()
                            sleep(1000)
                            back()
                            sleep(1000)
                        }
                    }
                    utils.openApp("com.vphonegaga.titan");
                    logd("启动虚拟机");
                    sleep(10000);
                    for (; ;) {

                        if (查找节点点击("虚拟机界面", index(0).depth(10).drawingOrder(1).id("com.vphonegaga.titan:id/clGroup"), 1000, 3110)) {
                            logd("虚拟机界面")
                            let 虚拟机3的开机键 = index(2).depth(11).drawingOrder(3).id("com.vphonegaga.titan:id/clContent").getOneNodeInfo(100)
                            if (虚拟机3的开机键) {
                                虚拟机3的开机键的子节点 = 虚拟机3的开机键.child(2)
                                if (虚拟机3的开机键的子节点) {
                                    虚拟机3的开机键的子节点的子节点 = 虚拟机3的开机键的子节点.child(0)
                                    if (虚拟机3的开机键的子节点的子节点) {
                                        虚拟机3的开机键的子节点的子节点的子节点 = 虚拟机3的开机键的子节点的子节点.child(0)
                                        if (虚拟机3的开机键的子节点的子节点的子节点) {
                                            虚拟机3的开机键的子节点的子节点的子节点.click()
                                            sleep(1000)
                                        }
                                    }
                                }
                            }
                            let 虚拟机4的开机键 = index(3).depth(11).drawingOrder(4).id("com.vphonegaga.titan:id/clContent").getOneNodeInfo(100)
                            if (虚拟机4的开机键) {
                                虚拟机4的开机键的子节点 = 虚拟机4的开机键.child(2)
                                if (虚拟机4的开机键的子节点) {
                                    虚拟机4的开机键的子节点的子节点 = 虚拟机4的开机键的子节点.child(0)
                                    if (虚拟机4的开机键的子节点的子节点) {
                                        虚拟机4的开机键的子节点的子节点的子节点 = 虚拟机4的开机键的子节点的子节点.child(0)
                                        if (虚拟机4的开机键的子节点的子节点的子节点) {
                                            虚拟机4的开机键的子节点的子节点的子节点.click()
                                            sleep(1000)
                                        }
                                    }
                                }
                            }
                            if (查找节点点击("启动不成功", text("光速虚拟机正在启动").id("com.vphonegaga.titan:id/engineStartBottomLabel"), 1000, 1110)) {
                                logd("启动不成功")
                                sleep(20000)
                                if (查找节点点击("启动不成功2", text("光速虚拟机正在启动").id("com.vphonegaga.titan:id/engineStartBottomLabel"), 1000, 1110)) {
                                    logd("启动不成功2")
                                    打开应用信息界面("com.vphonegaga.titan")
                                    sleep(3000)
                                    if (查找节点点击("强制停止", text("强制停止"), 1, 3111)) {
                                        logd("强制停止")
                                        sleep(2000)
                                        if (查找节点点击("强制停止", text("强制停止"), 1, 3110)) {
                                            logd("强制停止")
                                            back()
                                            sleep(1000)
                                            back()
                                            sleep(1000)
                                            back()
                                            sleep(1000)
                                        }
                                    }

                                }
                            }
                        } else {
                            if (查找节点点击("虚拟机内界面", index(0).depth(3).drawingOrder(1).clz("android.view.View"), 1000, 2110)) {
                                logd("虚拟机内界面")
                                back()
                                sleep(1000)
                            } else {
                                utils.openApp("com.vphonegaga.titan");
                                logd("启动虚拟机");
                                sleep(10000);
                            }

                        }
                        if (查找节点点击("虚拟机内界面", index(0).depth(3).drawingOrder(1).clz("android.view.View"), 1000, 2110)) {
                            logd("虚拟机内界面")
                            back()
                            sleep(1000)
                        }
                        let 检测虚拟机3是否开机 = index(2).depth(11).drawingOrder(3).id("com.vphonegaga.titan:id/clContent").getOneNodeInfo(100)
                        if (检测虚拟机3是否开机) {
                            检测虚拟机3是否开机的子节点 = 检测虚拟机3是否开机.child(2)
                            if (检测虚拟机3是否开机的子节点) {
                                检测虚拟机3是否开机的子节点的子节点 = 检测虚拟机3是否开机的子节点.child(0)
                                if (检测虚拟机3是否开机的子节点的子节点.clz == "android.view.View") {
                                    logd("虚拟机3开着")
                                    sleep(100)
                                    let 检测虚拟机4是否开机 = index(3).depth(11).drawingOrder(4).id("com.vphonegaga.titan:id/clContent").getOneNodeInfo(100)
                                    if (检测虚拟机4是否开机) {
                                        检测虚拟机4是否开机的子节点 = 检测虚拟机4是否开机.child(2)
                                        if (检测虚拟机4是否开机的子节点) {
                                            检测虚拟机4是否开机的子节点的子节点 = 检测虚拟机4是否开机的子节点.child(0)
                                            if (检测虚拟机4是否开机的子节点的子节点.clz == "android.view.View") {
                                                logd("虚拟机4开着")
                                                sleep(100)
                                                break
                                            }
                                        }
                                    }
                                }
                            }
                        }


                    }
                    for (let i = 0; i < 30; i++) {
                        toast("取关中...", toastExtra)
                        sleep(60000)
                    }
                    home()
                    sleep(1000);
                    home()
                    sleep(1000);
                    main()

                }
                if (第二排做任务 == "true") {
                    logd("选择的是第二排...开始取关第一排")
                    sleep(1000)
                    打开应用信息界面("com.vphonegaga.titan")
                    sleep(3000)
                    if (查找节点点击("强制停止", text("强制停止"), 1, 3111)) {
                        logd("强制停止")
                        sleep(2000)
                        if (查找节点点击("强制停止", text("强制停止"), 1, 3110)) {
                            logd("强制停止")
                            back()
                            sleep(1000)
                            back()
                            sleep(1000)
                            back()
                            sleep(1000)
                        }
                    }
                    utils.openApp("com.vphonegaga.titan");
                    logd("启动虚拟机");
                    sleep(10000);
                    for (; ;) {
                        if (查找节点点击("虚拟机界面", index(0).depth(10).drawingOrder(1).id("com.vphonegaga.titan:id/clGroup"), 1000, 3110)) {
                            logd("虚拟机界面")

                            let 虚拟机1的开机键 = index(0).depth(11).drawingOrder(1).id("com.vphonegaga.titan:id/clContent").getOneNodeInfo(100)
                            if (虚拟机1的开机键) {
                                虚拟机1的开机键的子节点 = 虚拟机1的开机键.child(2)
                                if (虚拟机1的开机键的子节点) {
                                    虚拟机1的开机键的子节点的子节点 = 虚拟机1的开机键的子节点.child(0)
                                    if (虚拟机1的开机键的子节点的子节点) {
                                        虚拟机1的开机键的子节点的子节点的子节点 = 虚拟机1的开机键的子节点的子节点.child(0)
                                        if (虚拟机1的开机键的子节点的子节点的子节点) {
                                            虚拟机1的开机键的子节点的子节点的子节点.click()
                                            sleep(1000)
                                        }
                                    }
                                }
                            }
                            let 虚拟机2的开机键 = index(1).depth(11).drawingOrder(2).id("com.vphonegaga.titan:id/clContent").getOneNodeInfo(100)
                            if (虚拟机2的开机键) {
                                虚拟机2的开机键的子节点 = 虚拟机2的开机键.child(2)
                                if (虚拟机2的开机键的子节点) {
                                    虚拟机2的开机键的子节点的子节点 = 虚拟机2的开机键的子节点.child(0)
                                    if (虚拟机2的开机键的子节点的子节点) {
                                        虚拟机2的开机键的子节点的子节点的子节点 = 虚拟机2的开机键的子节点的子节点.child(0)
                                        if (虚拟机2的开机键的子节点的子节点的子节点) {
                                            虚拟机2的开机键的子节点的子节点的子节点.click()
                                            sleep(1000)
                                        }
                                    }
                                }
                            }

                            if (查找节点点击("启动不成功", text("光速虚拟机正在启动").id("com.vphonegaga.titan:id/engineStartBottomLabel"), 1000, 1110)) {
                                logd("启动不成功")
                                sleep(20000)
                                if (查找节点点击("启动不成功2", text("光速虚拟机正在启动").id("com.vphonegaga.titan:id/engineStartBottomLabel"), 1000, 1110)) {
                                    logd("启动不成功2")
                                    sleep(1000)
                                    打开应用信息界面("com.vphonegaga.titan")
                                    sleep(3000)
                                    if (查找节点点击("强制停止", text("强制停止"), 1, 3111)) {
                                        logd("强制停止")
                                        sleep(2000)
                                        if (查找节点点击("强制停止", text("强制停止"), 1, 3110)) {
                                            logd("强制停止")
                                            back()
                                            sleep(1000)
                                            back()
                                            sleep(1000)
                                            back()
                                            sleep(1000)
                                        }
                                    }
                                }
                            }
                        } else {
                            if (查找节点点击("虚拟机内界面", index(0).depth(3).drawingOrder(1).clz("android.view.View"), 1000, 2110)) {
                                logd("虚拟机内界面")
                                back()
                                sleep(1000)
                            } else {
                                utils.openApp("com.vphonegaga.titan");
                                logd("启动虚拟机");
                                sleep(10000);
                            }

                        }
                        if (查找节点点击("虚拟机内界面", index(0).depth(3).drawingOrder(1).clz("android.view.View"), 1000, 2110)) {
                            logd("虚拟机内界面")
                            back()
                            sleep(1000)
                        }
                        let 检测虚拟机1是否开机 = index(0).depth(11).drawingOrder(1).id("com.vphonegaga.titan:id/clContent").getOneNodeInfo(100)
                        if (检测虚拟机1是否开机) {
                            检测虚拟机1是否开机的子节点 = 检测虚拟机1是否开机.child(2)
                            if (检测虚拟机1是否开机的子节点) {
                                检测虚拟机1是否开机的子节点的子节点 = 检测虚拟机1是否开机的子节点.child(0)
                                if (检测虚拟机1是否开机的子节点的子节点.clz == "android.view.View") {
                                    logd("虚拟机1开着")
                                    sleep(100)
                                    let 检测虚拟机2是否开机 = index(1).depth(11).drawingOrder(2).id("com.vphonegaga.titan:id/clContent").getOneNodeInfo(100)
                                    if (检测虚拟机2是否开机) {
                                        检测虚拟机2是否开机的子节点 = 检测虚拟机2是否开机.child(2)
                                        if (检测虚拟机2是否开机的子节点) {
                                            检测虚拟机2是否开机的子节点的子节点 = 检测虚拟机2是否开机的子节点.child(0)
                                            if (检测虚拟机2是否开机的子节点的子节点.clz == "android.view.View") {
                                                logd("虚拟机2开着")
                                                sleep(100)
                                                break
                                            }
                                        }
                                    }
                                }
                            }
                        }


                    }
                    for (let i = 0; i < 30; i++) {
                        toast("取关中...", toastExtra)
                        sleep(60000)
                    }
                    main()


                }

            } catch (e) {
                logw("出错")
                sleep(1000)
            }
        }


    }

    function 死号() {
        sleep(150)
        for (; ;) {
            let 账号掉了的数据 = JSON.stringify({"num": 本机编号, "xystatus": "掉线", "remarks": ""})
            let 掉账号 = http.postJSON(服务器账号状态链接, 账号掉了的数据, 10 * 1000, {"User-Agent": "test"});
            if (掉账号 === "OK") {
                logd("成功")
                sleep(1000)
            } else {
                logd("失败")
                sleep(10000)
            }
            logd("掉了")
            sleep(1000)
            exit()
            sleep(1000)

        }

    }

    function 更新() {
        sleep(random(1000, 30000))
        logd("更新")
        sleep(1000)
        let id2 = startJob("task2", "6", true);
        toast("job id " + id2);
        sleep(1000)
        exit()
    }


    function 热更新() {
        for (let i = 0; i < 30; i++) {
            let cm = context.getSystemService(context.CONNECTIVITY_SERVICE);
            let net = cm.getActiveNetworkInfo();
            if (net == null || !net.isAvailable()) {
                toast("网络未连接");
                sleep(1000)
                toast("网络未连接");
                sleep(1000)
                utils.openIntentAction("android.settings.WIFI_SETTINGS")
                toast("进入wifi选项")
                sleep(2000)
                for (let i = 0; i < 30; i++) {
                    if (查找节点点击("关", text("关"), 1, 3100)) {
                        logd("关")
                        sleep(10000)
                        break
                    }
                    if (查找节点点击("高级", text("高级"), 1, 3100)) {
                        logd("高级")
                        sleep(1100)
                    }
                    if (查找节点点击("管理网络", text("管理网络"), 1, 3100)) {
                        logd("管理网络")
                        sleep(20000)
                        back()
                        sleep(1000)
                        back()
                        sleep(1000)
                        back()
                        sleep(1000)
                        break
                    }

                }
            } else {
                toast("网络连接正常")
                sleep(2000)
                let url = "https://wdsanxingn8.oss-cn-beijing.aliyuncs.com/updete.txt"
                var 分解对象 = http.httpGetDefault(url, 10 * 1000, {"User-Agent": "test"});
                toast("当前版本 -> " + version);
                sleep(1000)
                toast("服务器版本 -> " + 分解对象);
                sleep(1000)
                var 分解对象为空 = utils.isObjectNull(分解对象);
                if (分解对象为空) {
                    sleep(2000)
                    logd("获取更新地址失败")
                    sleep(1000)
                    break
                } else {
                    if (version < 分解对象) {
                        logd("开始自动更新")
                        sleep(1000)
                        let 对象下载地址 = "https://wdsanxingn8.oss-cn-beijing.aliyuncs.com/release.iec"
                        if (对象下载地址 !== "") {
                            logd(对象下载地址)
                            let down = http.downloadFile(对象下载地址, "/sdcard/release.iec", 10 * 1000, {"User-Agent": "test"});
                            toast("下载:" + down);
                            sleep(2000);
                            zipFile = "/sdcard/release.iec"

                            sleep(2000);
                            let result = setIECPath("/sdcard/release.iec");
                            toast("result : " + result);
                            sleep(2000)
                            //开启定时任务准备下一次执行
                            let id2 = startJob("task2", "4", true);
                            toast("job id " + id2);
                            sleep(1000)
                            exit()
                        } else {
                            toast(对象地址);
                            sleep(2000)
                            break

                        }
                    } else {
                        toast("没有更新");
                        sleep(3000);
                        break

                    }

                }
                break;
            }
        }//热更新
        main()
    }

    function 查找节点点击(备注, 查找, 点击, 找寻时间) {
        let 节点 = 查找.getOneNodeInfo(找寻时间);
        if (节点) {
            if (点击 == 1) {
                节点.click()
                sleep(random(500, 1000));
            }
            if (点击 === 2) {
                节点.clickCenter();
                sleep(random(500, 1000));
            }
            if (点击 === 3) {
                节点.clickEx();
                sleep(random(500, 1000));
            }
            if (点击 === 4) {
                节点.longClick();
                sleep(random(500, 1000));
            }
            return true;
        }
        return false;
    }

    function 查找节点点击并输入(备注, 查找, 内容, 延迟时间) {
        let 节点 = 查找.getOneNodeInfo(延迟时间);
        if (节点) {
            节点.click()
            sleep(random(500, 1000));
            (节点).inputText(内容);
            sleep(random(500, 1000));
            return true;
        }
        return false;
    }

    function 找图点击(图片, 是否点击) {
        let bitmap = image.captureScreenBitmap("png", -1, 0, 0, 0, 100);
        let temp = readResBitmap(图片 + ".png");
        let rects = imageHandler.findImgFast(bitmap, temp, 0.9, -1, 0, 0, 0, 10, true);
        if (rects) {
            if (是否点击 == 1) {
                clickPoint(rects[0].left, rects[0].top)
                sleep(1000)
            }
            imageHandler.recycle(bitmap, temp)
            sleep(10)
            return true;
        }
        imageHandler.recycle(bitmap, temp)
        sleep(10)
        return false;
    }

    function moveFun(qx, qy, zx, zy, time) {
        var xxy = [];
        var points = [];

        //设置控制点极限距离
        var leaveHeightLength = 500

        var point1 = {
            "x": qx,
            "y": qy
        };

        //根据偏差距离，应用不同的随机方式
        if (Math.abs(zx - qx) > Math.abs(zy - qy)) {
            var my = (qy + zy) / 2
            var y2 = my + random(0, leaveHeightLength)
            var y3 = my - random(0, leaveHeightLength)

            var lx = (qx - zx) / 3
            if (lx < 0) {
                lx = -lx
            }
            var x2 = qx + lx / 2 + random(0, lx)
            var x3 = qx + lx + lx / 2 + random(0, lx)
        } else {
            var mx = (qx + zx) / 2
            var y2 = mx + random(0, leaveHeightLength)
            var y3 = mx - random(0, leaveHeightLength)

            var ly = (qy - zy) / 3
            if (ly < 0) {
                ly = -ly
            }
            var y2 = qy + ly / 2 + random(0, ly)
            var y3 = qy + ly + ly / 2 + random(0, ly)
        }

        var point2 = {
            "x": x2,
            "y": y2
        };
        var point3 = {
            "x": x3,
            "y": y3,
        };
        var point4 = {
            "x": zx,
            "y": zy
        };


        points.push(point1);
        points.push(point2);
        points.push(point3);
        points.push(point4);

        let targetP;
        for (let i = 0; i < 1; i += 0.08) {
            targetP = bezier_curves(points, i);
            xxy.push([parseInt(targetP.x), parseInt(targetP.y)]);
        }

        let touch1 = [];
        let _time = time / xxy.length;

        touch1.push({"action": 0, "x": xxy[0][0], "y": xxy[0][1], "pointer": 1, "delay": _time})
        for (let i = 2; i < xxy.length - 1; i++) {
            touch1.push({"action": 2, "x": xxy[i][0], "y": xxy[i][1], "pointer": 1, "delay": _time})
        }
        touch1.push({
            "action": 1,
            "x": xxy[xxy.length - 1][0],
            "y": xxy[xxy.length - 1][1],
            "pointer": 1,
            "delay": _time
        })

        let x = multiTouch(touch1, null, null, 30000);
    };

    function bezier_curves(cp, t) {
        let cx = 3.0 * (cp[1].x - cp[0].x);
        let bx = 3.0 * (cp[2].x - cp[1].x) - cx;
        let ax = cp[3].x - cp[0].x - cx - bx;
        let cy = 3.0 * (cp[1].y - cp[0].y);
        let by = 3.0 * (cp[2].y - cp[1].y) - cy;
        let ay = cp[3].y - cp[0].y - cy - by;

        let tSquared = t * t;
        let tCubed = tSquared * t;
        let result = {
            "x": 0,
            "y": 0
        };
        result.x = (ax * tCubed) + (bx * tSquared) + (cx * t) + cp[0].x;
        result.y = (ay * tCubed) + (by * tSquared) + (cy * t) + cp[0].y;
        return result;
    };


    function 打开应用信息界面(pkgName) {
        //打开应用信息界面的用法
        // 打开应用信息界面("com.huzan.automatic")
        // sleep(3000)
        // let 结束运行 = getOneNodeInfo(text("结束运行").pkg("com.miui.securitycenter"), 3000)
        // if (结束运行) {
        //     (结束运行).click()
        //     sleep(2000)
        //     let 确定 = getOneNodeInfo(text("确定"), 3000)
        //     if (确定) {
        //         (确定).click()
        //         sleep(2000)
        //         back()
        //         sleep(1000)
        //         back()
        //         sleep(1000)
        //     }
        //
        // }
        return utils.openActivity({
            "action": "android.settings.APPLICATION_DETAILS_SETTINGS",
            "uri": "package:" + pkgName
        });
    }

    function 停止应用(包名) {

        utils.openActivity({
            "action": "android.settings.APPLICATION_DETAILS_SETTINGS",
            "uri": "package:" + 包名
        });
        sleep(1000)
        if (查找节点点击("强制停止", text("强制停止"), 1, 1111)) {
            logd("强制停止")
            sleep(1000)
            if (查找节点点击("强制停止", text("强制停止"), 1, 1510)) {
                logd("强制停止")
                back()
                sleep(1000)
                back()
                sleep(1000)
                back()
                sleep(1000)
            }
        }
        if (查找节点点击("强行停止", text("强行停止"), 1, 1111)) {
            logd("强行停止")
            sleep(1010)
            if (查找节点点击("确定", text("确定"), 1, 1500)) {
                logd("确定")
                sleep(1010)
            }
            back()
            sleep(1000)
            back()
            sleep(1000)
            back()
            sleep(1000)
        }
    }

    function 检查图片(图片1) {
        let 本地图片 = 图片1
        let 图片是否存在 = file.exists("/sdcard/找图/" + 本地图片 + ".png");
        if (图片是否存在 == false) {
            let 图片下载地址 = "https://gitee.com/sun-jian-8341/tuse/raw/master/tuse/" + 本地图片 + ".png"
            if (图片下载地址 !== "") {
                let down = http.downloadFile(图片下载地址, "/sdcard/找图/" + 本地图片 + ".png", 10 * 1000, {"User-Agent": "test"});
                toast("下载:" + down);
                sleep(2000);
            }
            return true;
        }
        return false;
        sleep(100)
    }
